High performance robotic systems may use closed loop control such as position, velocity, and acceleration sensors, feedback and feed forward calculations, and signal filtration. The use of feedback enables a level of performance near optimal levels of speed and accuracy for point-to-point moves.
As an example, a robotic system that is adapted for a rapid prototyping system (RPS), and that employs feedback to control a position of an extrusion nozzle in an x-y-z coordinate reference frame, is disclosed in commonly assigned U.S. patent application Ser. No. 08/034,180, filed Mar. 22, 1993, entitled "Model Generation System Having Closed-Loop Extrusion Nozzle Positioning", by J. S. Batchelder et al., which is a continuation of Ser. No. 07/637,570, filed Jan. 3, 1991 (abandoned).
An example of the generally applied use of feedback in robotics, through the use of encoders and possibly tachometers, is shown in U.S. Pat. No. 4,749,347.
However, for low cost robot actuators the additional cost of providing feedback sensors and servo amplifiers may be prohibitive.
Synchronization of multiple axis motion may also be required in robotic applications. Master/slave techniques are typically used, such as described in "Multi-axis Controller", by R. C. Russell, U.S. Pat. No. 4,415,967.
Optimization of a point-to-point move time may not, however, optimize the total move time over a trajectory. In an application of particular interest, the problem that is addressed by this invention can be understood by comparing two simple trajectories.
In a first case, 1000 line segments each 0.01 inches long are concatenated to form a circle with a diameter of 3.18 inches. Ignoring truncation effects due to the finite step size possible along each axis, the maximum speed that a robot should make this circular move is dictated by the amount of centripetal acceleration that the mechanism can accurately sustain. For a typical case of 0.3 g's of acceleration, the robot should be able to negotiate the circle at an average peak speed of 13.6 inches per second, not including the portions required for longitudinal acceleration and deceleration.
In a second case, 1000 moves of 0.01 inches form a stair case so that there is a 90 degree turn between each segment. If it is assumed that the step size should set the desired accuracy of the system, then the 90 degree changes of direction must be accomplished in a single motor step. Again for 0.3 g's of acceleration, and assuming a typical step size of 0.0003 inches, it is found that the velocity at the corners is maximally 0.132 inches per second. Even assuming that the robot accelerates and decelerates as fast as possible on the segments between the corners, the maximum velocity on average is 1.05 inches per second, more than an order of magnitude slower than for the first case.
Clearly, it is necessary to look ahead a considerable distance to determine the nature of the trajectory. If there are sharp turns coming, the velocities should be sufficiently reduced so that acceleration limits are not exceeded. It is also desirable to use the acceleration capabilities of the robot to the greatest extent possible, which means that the robot should preferably always either be accelerating or decelerating.
Several known types of high performance robotic controllers measure instantaneous position, velocity, and acceleration, and use this information with feed forward corrections based on the coming trajectory to control straight line point-to-point moves. These real time controllers use the fastest available digital signal processor hardware, but are constrained to look, at most, two point-to-point moves ahead. As was indicated in the foregoing example, such a short look-ahead approach can require a significant transit time over a trajectory, as compared to a trajectory that has been globally maximized.